
const util = {}

util.Cookie = {
    /**
     * 设置Cookie
     * @method set
     * @author hj
     * @param {string} key cookie的名称
     * @param {string} value cookie的值
     * @param {Object} opts
     *  {
     *      expires{Number}: 存活时间，单位：小时
     *      path{String}   : 设置cookie可访问的目录，默认为当前文档位置的路径
     *      domain{String} : 所在域名， 默认为当前文档位置的路径的域名部分
     *  }
     */
    set: function (key, value, opts) {
        var opts = opts || {};
        var expires = '';
        if(opts.expires) {
            var d = new Date();
            d.setTime(d.getTime() + opts.expires * 60 * 60 * 1000);
            expires = ";expires=" + d.toUTCString();
        }
        var domain = opts.domain ? ';domain=' + opts.domain : '';
        var path = opts.path ? ';path=' + opts.path : '';
        document.cookie = key + "=" + value + expires + domain + path;
        return true;
    },
    
    /**
     *  获取指定的cookie值
     * @method get
     * @author hj
     * 
     * 
     */
    get: function(key){
        var key = key.replace(/[-.+*]/g, '\\$&'); //当key带有特殊符号时处理一下key
        var reg = new RegExp("(?:^| )" + key + "=([^;]*)(;|$)");
        var query = reg.exec(document.cookie);
        if(query) {
            return query[1];
        } else {
            return null;
        }
    },

    /**
     * 删除指定的cookie 
     */
    remove: function(key, opts){
        if(!!key && this.has(key)) {
            var opts = opts || {};
            document.cookie = key + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + ( opts.domain ? "; domain=" + opts.domain : "") + ( opts.path ? "; path=" + opts.path : "");
            return true;
        } else {
            return false;
        }
    },

    /**
     * 检查是否有这个cookie名
    */
    has: function(key){
        var key = key.replace(/[-.+*]/g, '\\$&'); //当key带有特殊符号时处理一下key
        var reg = new RegExp("(?:^|;\\s*)"+ key +"\\s*\\=");
        return reg.test(document.cookie);
    } 
}

export default util